package com.sky.orangehireserver.modules.enterprise.dto;

import com.sky.orangehireserver.utils.BasePageQuery;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 岗位查询请求DTO
 * 
 * @author sky
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "岗位查询请求DTO")
public class JobQueryDTO extends BasePageQuery {

    /**
     * 职位名称（模糊查询）
     */
    @Schema(description = "职位名称（模糊查询）", example = "Java")
    private String title;

    /**
     * 所属部门
     */
    @Schema(description = "所属部门", example = "技术部")
    private String department;

    /**
     * 工作地点
     */
    @Schema(description = "工作地点", example = "北京")
    private String location;

    /**
     * 工作类型
     */
    @Schema(description = "工作类型", example = "full_time", allowableValues = {"full_time", "part_time", "intern", "contract"})
    private String employmentType;

    /**
     * 经验要求
     */
    @Schema(description = "经验要求", example = "mid", allowableValues = {"junior", "mid", "senior"})
    private String seniority;

    /**
     * 学历要求
     */
    @Schema(description = "学历要求", example = "bachelor", allowableValues = {"bachelor", "master", "phd", "none"})
    private String education;

    /**
     * 职位状态
     */
    @Schema(description = "职位状态", example = "open", allowableValues = {"draft", "open", "closed"})
    private String status;

    /**
     * 职位负责人ID
     */
    @Schema(description = "职位负责人ID", example = "1")
    private Long ownerId;

    /**
     * 职位标签（模糊查询）
     */
    @Schema(description = "职位标签（模糊查询）", example = "Java")
    private String tags;
}